package com.papers.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.papers.common.annotation.ExcelDictFormat;
import com.papers.common.convert.ExcelDictConvert;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * 知识点视图对象 t_juan_knowledge
 *
 * @author papers
 * @date 2022-10-08
 */
@Data
@ExcelIgnoreUnannotated
public class TJuanKnowledgeOutVo {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ExcelProperty(value = "ID")
    @ExcelIgnore
    private String knowledgeId;

    /**
     * 父节点
     */
    @ExcelProperty(value = "知识点父节点")
    @ExcelIgnore
    private String knowledgeParentId;

    /**
     * 题库编号
     */
    @ExcelProperty(value = "题库编号")
    private String courseCode;

    /**
     * 章节ID
     */
    @ExcelProperty(value = "章节ID")
    @ExcelIgnore
    private String chapterId;

    /**
     * 章节名称
     */
    @ExcelProperty(value = "章节名称")
    private String ChapterName;

    /**
     * 章节编号
     */
    @ExcelProperty(value = "章节编号")
    private String chapterCode;

    /**
     * 名称
     */
    @ExcelProperty(value = "知识点名称")
    private String knowledgeName;

    /**
     * 编码
     */
    @ExcelProperty(value = "知识点编号")
    private String knowledgeCode;

    /**
     * 内容
     */
    @ExcelProperty(value = "内容")
    private String knowledgeContent;

    /**
     * 描述
     */
    @ExcelProperty(value = "描述")
    private String knowledgeDes;

    /**
     * 排序
     */
    @ExcelProperty(value = "排序")
    private Integer knowledgeSort;

    /**
     * 重要性
     */
    @ExcelDictFormat(readConverterExp = "1=A,2=B,3=C,1=a,2=b,3=c")
    @ExcelProperty(value = "重要性",converter = ExcelDictConvert.class)
    private String knowledgeImportance;
    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private String createdBy;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createdTime;

    /**
     * 更新人
     */
    @ExcelProperty(value = "更新人")
    private String updatedBy;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    private Date updatedTime;

    /**
     * 父节点
     */
    @ExcelProperty(value = "父节点")
    @ExcelIgnore
    private String parentIds;

    /**
     * 子节点
     */
    private List<TJuanKnowledgeOutVo> children = new ArrayList<>();
}
